package com.briup.day08;

/**
 * @author 谭梦寻
 * @version 1.1
 */
public class SuperClass {
//    项目中模块之间的关系： 高内聚 低耦合
//    模块中的每个类: 耦合性
//    总结：继承会引起类之间的耦合
    public String name = "super";
    public int num = 1;

    public void run() {
        System.out.println("superClass is running");
    }

    public static void main(String[] args) {
        SubClass subClass = new SubClass();
        subClass.method();
    }

}
class SubClass extends SuperClass {
    public String name = "sub";
    public int num = 1;
    public void method() {
        System.out.println(name);//打印sub 默认使用this.name
        System.out.println(super.name);//打印super
        run();//默认使用this.run
        super.run();//调用父类的方法 super表示父类对象
    }
    public void run() {
        System.out.println("subClass is running");
    }

//    在子类方法中访问一个变量 会根据就近原则
    public void say(int num) {
//        int num = 1;
        System.out.println(num);// 就近原则 局部变量（形参） 成员变量 父类成员变量
//
    }
    public void method1() {
        System.out.println(this);
//        super 可以调用父类（包括间接父类Object）的方法
        System.out.println(super.name);
        System.out.println(this.name);
        System.out.println(super.hashCode());
    }
    public static void method2() {
//        System.out.println(super.name); // 不能调用非静态
//        System.out.println(this.name); // 不能调用非静态
    }
}
